package main

import (
	"encoding/json"
	"fmt"
	"io"
	"net/http"
)

// Response API响应结构
type Response struct {
	Code int             `json:"code"`
	Data json.RawMessage `json:"data"`
	Msg  string          `json:"msg"`
}

// ContentData 内容数据结构
type ContentData struct {
	Content    string `json:"content"`
	UpdateTime string `json:"updateTime"`
}

func main() {
	// 测试的API端点
	endpoints := []string{
		"http://localhost:8080/api/map/guide",
		"http://localhost:8080/api/about/school",
	}

	// 依次测试每个端点
	for _, endpoint := range endpoints {
		fmt.Printf("测试 API: %s\n", endpoint)

		// 发送GET请求
		resp, err := http.Get(endpoint)
		if err != nil {
			fmt.Printf("请求失败: %v\n", err)
			continue
		}
		defer resp.Body.Close()

		// 读取响应内容
		body, err := io.ReadAll(resp.Body)
		if err != nil {
			fmt.Printf("读取响应失败: %v\n", err)
			continue
		}

		// 输出状态码
		fmt.Printf("状态码: %d\n", resp.StatusCode)

		// 解析JSON响应
		var response Response
		if err := json.Unmarshal(body, &response); err != nil {
			fmt.Printf("解析响应失败: %v\n", err)
			fmt.Printf("原始响应: %s\n\n", body)
			continue
		}

		// 输出响应状态
		fmt.Printf("响应状态: %s (代码: %d)\n", response.Msg, response.Code)

		// 解析内容数据
		var contentData ContentData
		if err := json.Unmarshal(response.Data, &contentData); err != nil {
			fmt.Printf("解析内容数据失败: %v\n", err)
			fmt.Printf("原始数据: %s\n\n", response.Data)
			continue
		}

		// 输出内容信息
		fmt.Printf("更新时间: %s\n", contentData.UpdateTime)
		fmt.Printf("内容预览: %.100s...\n\n", contentData.Content)
	}
}
